<script>
layui.use(['jquery', 'table', 'form'], function() {
	var $ = layui.jquery, table = layui.table, form = layui.form;
	var sortObj={field:'code', type:'asc'}; ### 排序对象，用于初始化数据表格的排序，要与layui-table中初始化参数一致

	### 监听头部工具栏事件
	table.on('toolbar(LAY-master-table)', function(obj){
		switch(obj.event) {
			case 'add':
				addOrEdit('添加广告位置', '#(ctx)/manage/adPlace/add');
			break;
		};
	});
	### 监听行工具事件
	table.on('tool(LAY-master-table)', function(obj) {
		var data = obj.data;
		if (obj.event === 'edit') { ### 编辑操作
			addOrEdit('编辑广告位置', '#(ctx)/manage/adPlace/edit?id=' + data.id);
		} else if (obj.event === 'del') { ### 删除操作
			del(data);
		}
	});
	### 监听行双击事件
	table.on('rowDouble(LAY-master-table)', function(obj){
		view(obj.data);
	});
	### 监听排序切换
	table.on('sort(LAY-master-table)', function(obj) {
		sortObj = obj;
		reload();
	});

	### 用于响应各个按钮的点击事件
	$('#ID_btn_search').on('click', function() {
		reload();
	});

	### --------------- 以上是操作监听脚本 ---------------
	### --------------- 以下是操作执行脚本 ---------------

	### 重载操作
	function reload(){
		layer.load(1); ### 防止重复操作
		table.reload('ID_master_table', {
			initSort: sortObj,
			where : {
				name : $('#name').val(),
				code : $('#code').val(),
				style : $('#style').val(),
				status : $('#status').val(),
				sortField : sortObj.field,
				sortType : sortObj.type
			}
		});
		layer.closeAll('loading'); ### 解除防重复操作
	}

	### 新增或编辑操作
	function addOrEdit(title, actUrl){
		layer.open({
			type : 2,
			title : title,
			content : actUrl,
			maxmin : false,
			area : [ '800px', '500px' ],
			closeBtn : 1,
			shadeClose : false,
			anim : 1,
			moveOut : false,
			resize : false,
			btn : [ '保存', '取消' ],
			yes : function(index, layero) {
				var iframeWindow = window['layui-layer-iframe' + index],
				submitID = 'LAY-front-submit', ### 此ID必须和弹出iframe窗口中提交按钮的ID和Filter值一致
				submit = layero.find('iframe').contents().find('#' + submitID);

				### 监听提交
				iframeWindow.layui.form.on('submit('+ submitID + ')', function(data) {
					$.ajax({ ### 用Ajax替换弹窗中的提交
						url : "#(ctx)/manage/adPlace/ajaxSaveOrUpdate",
						type : "post",
						data : data.field, ### 获取提交的数据
						beforeSend : function(){layer.load(1);}, ### 防止重复操作
						complete : function(){layer.closeAll('loading');}, ### 解除防重复操作
						success : function(ret){
							if(ret.code == 0){
								### 提交 Ajax 成功后，静态更新表格中的数据
								reload(); ### 数据表格刷新
								layer.close(index); ###关闭弹层
							} else {
								if(ret.msg){
									layer.alert(ret.msg, {icon: 0}); ### Ajax调用成功，但后台返回失败信息
								} else {
									layer.alert("操作失败！", {icon: 2});
								}
							}
						},
						error : function (e) { ### Ajax调用失败
							layer.alert("操作失败：" + e.responseText, {icon: 2});
						}
					});
					return false; ### 一定要返回False来阻止弹出窗口中提交按钮的再次提交
				});

				submit.trigger('click'); ### 这里触发弹出窗口的提交按钮
			}
		});
	}

	### 删除记录操作
	function del(data){
		layer.confirm('真的删除这条记录么？', function(index) {
			$.ajax({
				url : '#(ctx)/manage/adPlace/ajaxDel?id=' + data.id,
				type : "get",
				beforeSend : function(){layer.load(1);}, ### 防止重复操作
				complete : function(){layer.closeAll('loading');}, ### 解除防重复操作
				success : function(ret){
					if(ret.code == 0){
						layer.alert("删除成功！", {icon: 1});
						### 提交 Ajax 成功后，静态更新表格中的数据
						reload(); ### 数据刷新
						layer.close(index); ### 关闭弹层
					} else {
						if(ret.msg){
							layer.alert(ret.msg, {icon: 0});
						} else {
							layer.alert("操作失败！", {icon: 2});
						}
					}
				},
				error : function (e) {
					layer.alert("操作失败：" + e.responseText, {icon: 2});
				}
			});

		});
	}

	### 查看记录操作
	function view(data){
		layer.open({
			type : 2,
			title : "查看广告位置",
			content : '#(ctx)/manage/adPlace/view?id=' + data.id,
			maxmin : false,
			area : [ '800px', '500px' ],
			closeBtn : 1,
			shadeClose : false,
			anim : 1,
			moveOut : false,
			resize : false,
			btn : [ '关闭' ],
			yes : function(index, layero) {
				layer.close(index); ### 关闭弹层
			}
		});
	}
});
</script>